﻿using CoreShop.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CoreShop.Services
{
    public interface IcorereportServices
    {
        /// <summary>
        /// 商品点退赠统计
        /// </summary>
        /// <param name="count"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="che"></param>
        /// <param name="name"></param>
        /// <param name="foodType"></param>
        /// <param name="sumRow"></param>
        /// <returns></returns>
        List<Reportscorecmsfoodordering> GetCorecmsfoodorderings(ref int count, int? pageIndex, int? pageSize, DateTime? startDate, DateTime? endDate, string name, string foodType);
        /// <summary>
        /// 支付明细
        /// </summary>
        /// <param name="count"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="Status"></param>
        /// <param name="Payment"></param>
        /// <param name="sumRow"></param>
        /// <returns></returns>
        List<Reportscorecmsfoodorderpayment> GetOrderPaymentDetail(ref int count, int? pageIndex, int? pageSize, DateTime? startDate, DateTime? endDate, int Status, int Payment);


        List<Reportscorecmsfoodorderpayment> GetOrderPaymentSum(ref int count, int? pageIndex, int? pageSize, DateTime? startDate, DateTime? endDate, int Status, int Payment);

        /// <summary>
        /// 销售统计
        /// </summary>
        /// <param name="count"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <param name="typeName"></param>
        /// <returns></returns>
        List<corecmsfoodorderdetail> Getcorecmsfoodorder(ref int count, int? pageIndex, int? pageSize, DateTime? startDate, DateTime? endDate, int type, string name, string typeName);
        /// <summary>
        /// 销售明细
        /// </summary>
        /// <param name="count"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <param name="typeName"></param>
        /// <returns></returns>
        List<ReportOrderDetail> Getcorecmsfoodorderdetail(ref int count, int? pageIndex, int? pageSize, DateTime? startDate, DateTime? endDate, string className, int foodType, string name);
        /// <summary>
        /// 餐段统计
        /// </summary>
        /// <param name="count"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="sumRow"></param>
        /// <returns></returns>
        List<Reportscorecmsfoodordermaster> Getcorecmsfoodordermaster(ref int count, int? pageIndex, int? pageSize, DateTime? startDate, DateTime? endDate, int marketId, ref Reportscorecmsfoodordermaster sumRow);
        /// <summary>
        /// 收银员收银统计_收银员对应菜单汇总
        /// </summary>
        /// <param name="id"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        ReportUserMaster GetReportUserMaster(long id, DateTime? startDate, DateTime? endDate);
        /// <summary>
        /// 收银员对应会员充值汇总
        /// </summary>
        /// <param name="id"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        ReportUserBalance GetReportUserBalance(long id, DateTime? startDate, DateTime? endDate);
        List<ReportBalance> Getcorecmsuserbalance(ref int count, int pageIndex, int pageSize, DateTime startDate, DateTime endDate, string txtNumber, ref ReportBalance sumRow);
        /// <summary>
        /// 交班报表
        /// </summary>
        /// <param name="count"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        List<ClassDataDto> GetclassOff(ref int count, int pageIndex, int pageSize, DateTime startDate, DateTime endDate, string classnumber);

        List<ClassFoodType> GetClassFoodType(long classId);
    }
}